CodeDeployエージェントをインストールする
こんにちは、yagiです。
本日は、EC2インスタンスに「CodeDeployエージェントをインストールする」内容について記載します。
CodeDeployとは?
CodeDeployは、Amazon EC2インスタンス、オンプレミスインスタンス、サーバーレスLambda関数、またはAmazonECSサービスへのアプリケーションのデプロイを自動化するデプロイサービスです。
CodeDeployを使用すると、次のことが簡単になります。
・新機能を迅速にリリースします。
・AWSLambda関数のバージョンを更新します。
・アプリケーションの展開中のダウンタイムを回避します。
・エラーが発生しやすい手動デプロイメントに関連するリスクの多くを発生させることなく、アプリケーションの更新の複雑さを処理します。
このサービスはインフラストラクチャに合わせて拡張できるため、1つのインスタンスまたは数千のインスタンスに簡単にデプロイできます。 (公式ドキュメントからの引用)
先日作成したAutoScalingGroupにCodeDeployエージェントをインストールして複数インスタンスへのデプロイをしたいため、今回はその前段としてEC2インスタンスにCodeDeployエージェントをインストールします。
設定してみる
Install the CodeDeploy agent for Amazon Linux or RHEL
リージョン別に入手できるCodeDeployリソースキットは以下から入手します。
CodeDeploy resource kit reference
上記公式ドキュメントの案内にしたがって進めていきます。 大まかには、以下の2つの手順を実行するのみです。
- EC2インスタンスをAMIから起動
-
CodeDeployリソースキットからCodeDeployエージェントをインストール
1. EC2インスタンスをAMIから起動
まずはプラットフォームがLinuxのAMIから、EC2インスタンスを起動します。この後SSH接続するのでセキュリティグループのポート22の設定とキーペアの確保をしておきます。 なお公式の事前準備ページで設定したIAMロールも念のため付与しておきます。
2. CodeDeployリソースキットからCodeDeployエージェントをインストール
ターミナルから以下を実行してSSH接続します。
% ssh -i XXXXX.pem [email protected] __| __|_ ) _| ( / Amazon Linux 2 AMI ___|\___|___| https://aws.amazon.com/amazon-linux-2/
公式ドキュメントに従い以下を実行していきます。
$ sudo yum update 読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd No packages marked for update $ sudo yum install ruby 読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd ... 完了しました! $ sudo yum install wget 読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd パッケージ wget-1.14-18.amzn2.1.x86_64 はインストール済みか最新バージョンです 何もしません
ec2-user配下にディレクトリを移動し、リージョン別に入手できるCodeDeployリソースキットを参照して、作業しているリージョンにあわせて、以下のbucket-name と region-identifier を書き換えます。
wget https://bucket-name.s3.region-identifier.amazonaws.com/latest/install
$ cd /home/ec2-user $ wget https://aws-codedeploy-eu-central-1.s3.eu-central-1.amazonaws.com/latest/install --2021-03-24 20:39:18-- https://aws-codedeploy-eu-central-1.s3.eu-central-1.amazonaws.com/latest/install aws-codedeploy-eu-central-1.s3.eu-central-1.amazonaws.com (aws-codedeploy-eu-central-1.s3.eu-central-1.amazonaws.com) をDNSに問いあわせています... ... 2021-03-24 20:39:18 (24.6 MB/s) - `install' へ保存完了 [17231/17231]
続いて、権限変更してからインストールしていきます。最新バージョンでインストールしました。
$ chmod +x ./install $ sudo ./install auto I, [2021-03-24T20:39:43.995033 #3380] INFO -- : Starting Ruby version check. ... インストール: codedeploy-agent.noarch 0:1.3.1-1880 完了しました! I, [2021-03-24T20:39:46.599067 #3380] INFO -- : Update check complete. I, [2021-03-24T20:39:46.599165 #3380] INFO -- : Stopping updater.
これで作業完了です。
以下のコマンドを実行して、サービスが実行されていることを確認します。
$ sudo service codedeploy-agent status The AWS CodeDeploy agent is running as PID XXXX
無事インストールできました。
結論
AWS CodeDeploy を使用する準備作業として、CodeDeployエージェントのインストールを実施して確認する手順を記載しました。 今回はEC2インスタンスをAMIから起動し、CodeDeployエージェントのインストールを行った上で、AMIを取っておき、このEC2インスタンス自体はシャットダウンをしておきます。
参考リンク
Working with the CodeDeploy agent Getting started with CodeDeploy